﻿using Ops.Mpc.Collections;
using Ops.Mpc.Controllers;
using System.Collections.ObjectModel;

namespace Ops.Mpc.States
{
    public interface IState : INamedItem
    {
        IStateAction GetFirstStateAction();
        IStateAction GetStateAction(string name, bool traverseUpLogicalTree);
        IController Controller { get; set; }
        void OnLeavingState();
        void OnEnteringState();
        IStateTemplate StateTemplate { get; set; }
        void Start();
        void Stop();
        bool AutoRun { get; set; }
        string DisplayName { get; set; }

    }
}
